package com.tecso.btx.admin.dao.impl;

import java.util.Map;

import javax.persistence.Query;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.tecso.btx.admin.dao.IUsuarioDao;
import com.tecso.btx.admin.modelo.Recurso;
import com.tecso.btx.admin.modelo.Usuario;

@Component("usuarioDao")
public class UsuarioDao extends GenericDaoJpaImpl<Usuario, Long> implements
		IUsuarioDao {

	private static String sql = "";
	
	
	
	@Override
	public Usuario getUserByName(String name) {
		
		sql = "SELECT t FROM Usuario t WHERE t.nombre_usuario = :nombre_usuario";
		
		Query query = getEntityManager().createQuery(sql);
		query.setParameter("nombre_usuario", name);
		
		Usuario user = (Usuario)query.getSingleResult();
		
		return user; 
	}
	
	@Transactional
	@Override
	public Map<Integer, Recurso> getUserResources(Usuario u) {
		
		Usuario user_found = read(u.getId_usuario());
		
		Map<Integer, Recurso> recursos = user_found.getRecursos();
		user_found.getRecursos().size();
		
		return recursos;

	}
	
	
	@Transactional
	public void deleteUser(Usuario user) {

		Usuario found_user = this.getUserByName(user.getNombre_usuario());
		this.entityManager.remove(found_user);

	}

	/*
	 * crear getFiltro , pasandole como parametro un map key=columna,
	 * valor=valor
	 */

}
